package com.ihc.app.service;

import org.springframework.security.userdetails.UsernameNotFoundException;

import javax.jws.WebService;
import java.util.List;

/**
 * Web Service interface so hierarchy of Universal and Generic Managers isn't carried through.
 */
@WebService
public interface WellnessService {
    /**
     * Retrieves a user by userId.  An exception is thrown if user not found
     *
     * @param userId the identifier for the user
     * @return User
     */
//	WellnessProfileDto getWellnessProfile(String userId);

    /**
     * Finds a WellnessProfile by their username.
     * @param username the WellnessProfile's username used to login
     * @return WellnessProfile a populated WellnessProfile object
     * @throws org.springframework.security.userdetails.UsernameNotFoundException
     *         exception thrown when WellnessProfile not found
     */
//    User getUserByUsername(String username) throws UsernameNotFoundException;

    /**
     * Retrieves a list of users, filtering with parameters on a WellnessProfile object
     * @param WellnessProfileDto parameters to filter on
     * @return List
     */
//    List<WellnessProfileDto> getUsers(WellnessProfileDto wprofile);

    /**
     * Saves a WellnessProfile's information
     *
     * @param WellnessProfileDto the WellnessProfile's information
     * @throws UserExistsException thrown when WellnessProfile already exists
     * @return updated WellnessProfile
     */
//    WellnessProfileDto saveUser(WellnessProfileDto wprofile) throws UserExistsException;

    /**
     * Removes a WellnessProfile from the database by their userId
     *
     * @param userId the WellnessProfile's id
     */
//    void removeWellnessProfile(String userId);
}
